package models4admin

import (
	"Gin-Gorm-boke/boke_common/models"
	"github.com/guregu/null"
	"gorm.io/gorm"
)

type Role struct {
	gorm.Model
	Id         int           `gorm:"column:id;" json:"id"`
	RoleName   string        `gorm:"column:role_name;" json:"roleName"`
	RoleKey    string        `gorm:"column:role_key;" json:"roleKey"`
	RoleSort   int           `gorm:"column:role_sort;" json:"roleSort"`
	Status     string        `gorm:"column:status;" json:"status"`
	CreateBy   int           `gorm:"column:create_by;" json:"createBy"`
	UpdateBy   int           `gorm:"column:update_by;" json:"updateBy"`
	Remark     string        `gorm:"column:remark;" json:"remark"`
	CreateTime models.MyTime `gorm:"column:created_at;" json:"createTime"`
	UpdateTime models.MyTime `gorm:"column:updated_at;" json:"updateTime"`
	DelFlag    string        `gorm:"column:del_flag;default:'0';" json:"delFlag"`
}
type RoleDto struct {
	Id       null.Int   `gorm:"column:id;" json:"id"`
	RoleName string     `gorm:"column:role_name;" json:"roleName"`
	RoleKey  string     `gorm:"column:role_key;" json:"roleKey"`
	RoleSort int        `gorm:"column:role_sort;" json:"roleSort"`
	Status   string     `gorm:"column:status;" json:"status"`
	Remark   string     `gorm:"column:remark;" json:"remark"`
	MenuIds  []null.Int `json:"menuIds"`
}
type RoleVo struct {
	gorm.Model
	Id         string        `gorm:"column:id;" json:"id"`
	RoleName   string        `gorm:"column:role_name;" json:"roleName"`
	RoleKey    string        `gorm:"column:role_key;" json:"roleKey"`
	RoleSort   string        `gorm:"column:role_sort;" json:"roleSort"`
	Status     string        `gorm:"column:status;" json:"status"`
	CreateBy   int           `gorm:"column:create_by;" json:"createBy"`
	UpdateBy   int           `gorm:"column:update_by;" json:"updateBy"`
	Remark     string        `gorm:"column:remark;" json:"remark"`
	CreateTime models.MyTime `gorm:"column:created_at;" json:"createTime"`
	UpdateTime models.MyTime `gorm:"column:updated_at;" json:"updateTime"`
	DelFlag    string        `gorm:"column:del_flag;default:'0';" json:"delFlag"`
}

func (RoleVo) TableName() string {
	return "sys_role"
}
func (Role) TableName() string {
	return "sys_role"
}
